The present disclosure relates generally to utilization of computer resources, in particular managing capacity of resources in a computer system.
Computer systems have become sophisticated and powerful resources. Logically partitioned computer systems (LPARs) are examples of sophisticated systems that enable multiple users to run multiple applications simultaneously, using shared computer resources.
The full value of such a sophisticated computer system is best realized when several applications or workloads are sharing the computer system, driving its utilization very high. However, there are circumstances in which some users do not need the full capacity of a computer system, e.g., due to software pricing issues, geography, network bandwidth, etc. During such times, there is “white space”, i.e., times during which the full capacity of the computer system is not used.
FIG. 1 graphically illustrates variation of resource utilization over time in a traditional computer system. In FIG. 1, normalized usage of computer resource capacity distributed over various workloads is graphed over a 24 hour period. Over the time period represented in FIG. 1, the running average of computer resource usage varies significantly, with spikes in usage shown at various points during the day. To ensure that capacity is available for users during those peak periods of usage where the “spikey loads” occur, users are charged for the amount of capacity needed to provide those peak loads. Since the capacity that is needed for these peak periods is normally not being used, there is a lost of wasted “white space”, i.e., unused capacity, represented by the area in FIG. 1 outside the graph of the actual usage over time. This “white space” corresponds to a lot of paid for but unused capacity.
In traditional computer systems, usage of the computer system is kept high by using and sharing all the “white space”, i.e., unused capacity, that is available. For this reason, computer systems are often “softcapped”, i.e., there is not a cap on the usage of resources for any given user, as long as there is capacity available on the system. This presents a problem for a user that has paid for capacity but is not using it, as the unused capacity is then made available to another user that has not paid for it. The user that has paid for the capacity does not get the full value, and the user that has not paid for the capacity is unfairly enriched.
When a system is first brought on line, particularly in a consolidation effort when there are relatively few applications on the system, the workload will be “spiky”. In this case the customer is not getting full value from the machine until it is fully loaded. For a variety of reasons, such as isolation of work for software licensing purposes, isolation policy (largely security driven), or the nature of the workload, some workloads are not heavily shared.
There is thus a need to maximize usage of resources of a computer system while fairly managing the capacity of computer resources provided to various users. Furthermore, there is a corresponding need by the owner of the computer resource to purchase capacity in the same manner. That is, it would desirable for the owner to be able to purchase base capacity for anticipated normal loads plus marginal capacity for spikey loads. Furthermore, it would be desirable for the owner to float the marginal capacity between computer resources.